﻿Public Class xtf_ABMtelepeaje

    Dim ulg_row As DataRow
    Dim obj_telepeaje As cls_telepeaje_ = Nothing

    Public Sub New()
        InitializeComponent()
        AgregarValidaciones()
        Cargarvehiculo_()
        cargarCombo(cbo_estado, GetType(cls_telepeaje_.enu_estado))
        dtp_fechaestado.DateTime = Now.Date
        dtp_fechacontrato.DateTime = Now.Date
    End Sub

    Private Sub Cargarvehiculo_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_vehiculo.EditValue
        Dim vehiculo_ As New cls_vehiculo_
        vehiculo_.CargarTodos()
        cargarCombo(cbo_vehiculo, vehiculo_.Items)
        cbo_vehiculo.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_vehiculo.EditValue)

    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_telepeaje = New cls_telepeaje_
            btn_Registro.Enabled = False
            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef telepeaje As cls_telepeaje_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_telepeaje) Then
            obj_telepeaje = New cls_telepeaje_
        End If
        obj_telepeaje = telepeaje
        frm_listado = listado
        ulg_row = row : bbi_imprimir.Enabled = True

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_telepeaje.ToString
        txt_ID.Text = obj_telepeaje.idtelepeaje
        txt_Nombre.Text = obj_telepeaje.nombre
        txt_codigo.Text = obj_telepeaje.codigo
        txt_interno.Text = obj_telepeaje.interno
        txt_sitch.Text = obj_telepeaje.sitch
        cbo_vehiculo.EditValue = obj_telepeaje.idvehiculo
        dtp_fechacontrato.DateTime = obj_telepeaje.fechacontrato
        cbo_estado.EditValue = obj_telepeaje.estado
        dtp_fechaestado.DateTime = obj_telepeaje.fechaestado
        txt_motivoestado.Text = obj_telepeaje.motivoestado

        btn_Registro.Enabled = True

        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If

        'REGISTROS DUPLICADOS----------------------------------------------------
        Dim col As New Collections.Generic.List(Of stc_campoValor)
        Dim comp1 As New stc_campoValor
        comp1.campo = "sitch"
        comp1.valor = txt_sitch.Text
        col.Add(comp1)

        If ComprobarDuplicado("telepeaje_", col, "idtelepeaje <> " & IIf(txt_ID.Text = "", 0, txt_ID.Text)) Then
            ErrManagerShow("000010", Me, " Dato: Sitch")
            Return False
        End If
        'REGISTROS DUPLICADOS----------------------------------------------------

        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_telepeaje.nombre = txt_Nombre.Text
            obj_telepeaje.codigo = txt_codigo.Text
            obj_telepeaje.interno = txt_interno.Text
            obj_telepeaje.sitch = txt_sitch.Text
            obj_telepeaje.idvehiculo = cbo_vehiculo.EditValue
            obj_telepeaje.fechacontrato = dtp_fechacontrato.DateTime
            obj_telepeaje.estado = cbo_estado.EditValue
            obj_telepeaje.fechaestado = dtp_fechaestado.DateTime
            obj_telepeaje.motivoestado = txt_motivoestado.Text

            If txt_ID.Text = "" Then
                obj_telepeaje.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOtelepeaje_).AgregarItem(obj_telepeaje)
                End If
                Modificar(obj_telepeaje, frm_listado, ulg_row)
            Else
                obj_telepeaje.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOtelepeaje_).ModificarItem(obj_telepeaje, ulg_row)
                End If
                Modificar(obj_telepeaje, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False
        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_telepeaje.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_telepeaje.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub


    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub

    Private Sub cbo_vehiculo_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_vehiculo.EditValueChanged
        Dim vehiculo As New cls_vehiculo_
        lbl_telepeaje_.Text = " "
        If vehiculo.Buscar(cbo_vehiculo.EditValue) Then
            txt_interno.Text = vehiculo.inventario
            If Not IsNothing(vehiculo.telepeaje_) Then
                If Not IsNothing(vehiculo.telepeaje_.Items) Then
                    If vehiculo.telepeaje_.Items(0).idtelepeaje <> obj_telepeaje.idtelepeaje Then
                        lbl_telepeaje_.Text = "Tiene Telepeajes asignados."
                    End If
                End If
            End If
        End If
    End Sub

    Private Sub cbo_vehiculo_EditValueChanging(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.Controls.ChangingEventArgs) Handles cbo_vehiculo.EditValueChanging
       
    End Sub
End Class

